import sys
import os
import json
import urllib.request
from pprint import pprint
import datetime
from datetime import timedelta
import mysql.connector
import csv
import codecs

array_tag = []

from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
    def handle_data(self, data):
        try:
            data = data.rstrip()
            data = data.lstrip()
            data.encode('utf8')
            if data is not "" :
                array_tag.append(data.replace('€',''))
        except Exception as e:
            MyLogger.logger.error("Erreur pendant l'handle_data ("+format(e)+")")

from selenium import webdriver

import MyLogger
import MyLib

#Déclaration
arguments = dict() #dict
i = 0 #Int
config_json = {} #Json
statusSupervision = "OK"

#####################################################################
#Les definitions

#Procedure readAll
def readAll() :
    global config_json, statusSupervision
    try:
        MyLogger.logger.info("Début readAll")

        for objs in config_json["config_testQunit"]:
            read(objs)

        
        MyLogger.logger.info("Fin readAll")
    except Exception as e:
        MyLogger.logger.error("Erreur pendant readAll : ("+format(e)+")")

#Procedure Mise à jour
def read(p_objs) :
    global config_json, statusSupervision, array_tag
    try:
        MyLogger.logger.debug("Début read pour : "+p_objs["name"])

        print(p_objs["url"])

        browser = webdriver.Firefox()

        browser.get(p_objs["url"])
        html_source = browser.page_source

        print(html_source)
        
        MyLogger.logger.debug("Fin read pour : "+p_objs["name"])
    except Exception as e:
        MyLogger.logger.error("Erreur pendant read : ("+format(e)+")")

#Procedure Say More
def more() :
    MyLogger.logger.info("Les options disponible sont : 'more','read'.")
    MyLogger.logger.info("Exemple de syntax pour 'updateAll' : 'python ....read_testQunit\read_testQunit.py ....read_testQunit\exemple.config.read_testQunit.json read'.")
    MyLogger.logger.info("Exemple de syntax pour 'more' : '....read_testQunit\read_testQunit.py more'.")  

#####################################################################
#Le programme

#Message de bienvenu.
MyLogger.logger.info ("Bienvenue dans le script pour la supervision des tests Unitaire Qunit.")

#Récupération des arguments.
for x in sys.argv :
    i += 1
    if i == 2 :
        arguments["jsonFile"] = x
    elif i == 3 :
        arguments["action"] = x
        if x not in ["read","more"] :
            MyLogger.logger.warning("Votre premier argument ("+x+") est incorrect, seul 'more','read' sont aurorisés.")
            sys.exit("Erreur")
        else :
            MyLogger.logger.info("Mode d'action choisi : "+x+".")
            arguments["action"] = x
            
    if len(arguments) == 0 :
        arguments["action"] = "more"

#Initialisation
config_json = MyLib.charger_config(arguments["jsonFile"]) 

#Affichage        
if arguments["action"] == "read" :
    readAll()
elif arguments["action"] == "more" :
    more()

#Message de fin.
MyLogger.logger.info ("Fin du script.")
sys.exit(0)

    
